草庐IT

Python 复杂的字典键

全部标签

c# - 在复杂类型上链接 DebuggerDisplay

我有几个定义DebuggerDisplay属性的类。我想知道是否有一种方法可以根据另一个属性定义一个DebuggerDisplay属性。如果我有以下类(class):[DebuggerDisplay("Text={Text}")]classA{publicstringText{get;set;}}[DebuggerDisplay("Property={Property}")]classB{publicAProperty{get;set;}}我想在B的实例上看到A类,因为它是在类ADebuggerDisplay属性上定义的。取而代之的是,我在查看B类对象时将A类ToString()方法放

c# - 有没有像 c# 的 python 装饰器之类的东西?

我正在包装对API的调用,我的大部分方法都在第一行:if(!Gree.Authorizer.IsAuthorized()){return;}在python中,我会用类似@login_required的东西来装饰这些方法。您会用什么在c#中重构这种类型的逻辑? 最佳答案 您正在寻找称为面向方面编程的更通用编程方法的子集。C#似乎通过几个库来支持它,并且由于某些CLR功能,人们也可以推出自己的库。参见AspectOrientedProgrammingusing.NET其中涵盖了它的基本原理(我正在链接文章中谈论C#细节的部分,但如果您正

c# - json.net:为字典键指定转换器

我有一个JSON:{"data":{"A":5,"B":6},"foo":"foo","bar":"bar"}我需要将数据反序列化为一个类:publicDictionaryData{get;set;}publicstringFoo{get;set;}publicstringBar{get;set;}但MyEnum值是CodeA和CodeB而不是简单地分别是A和B。我有一个可以处理转换的自定义转换器。但是我如何指定一个JsonConverter来与字典键一起使用呢? 最佳答案 我相信唯一的方法是为整个Dictionary制作一个Jso

c# - 使用 LINQ 创建字典并避免 "item with the same key has already been added"错误

我想在字典中找到一个键,如果找到则替换值,如果找不到则添加键/值。代码:publicclassMyObject{publicstringUniqueKey{get;set;}publicstringField1{get;set;}publicstringField2{get;set;}}LINQ解决方案(抛出已添加具有相同键的项目。):DictionaryobjectDict=csvEntries.ToDictionary(csvEntry=>csvEntry.ToMyObject().UniqueKey,csvEntry=>csvEntry.ToMyObject());ForEach

c# - 从静态对象中包含的 C# 字典中释放内存

我在使用WCFWeb服务时遇到了一些问题(一些转储、内存泄漏等),并且我运行了一个profillng工具(ANTS内存配置文件)。只是为了发现即使处理结束(我运行特定测试然后停止),第2代也有25%的内存用于Web服务。我追踪这段内存,发现我有一个充满(null,null)项目的字典对象,哈希码为-1。Web服务的工作流意味着在特定的处理过程中,项目被添加然后从字典中删除(只是简单的Add和Remove)。没什么大不了的。但似乎在删除所有项目后,字典中充满了(null,null)KeyValuePair秒。实际上有数千个,以至于它们占据了很大一部分内存并最终发生溢出,相应的强制应用程序

c# - 是否可以对字典字符串键进行部分字符串匹配?

我有一个Dictionary>在我以下列方式使用的代码中:KeyValues2011-07-151,2,32011-07-204,5,62010-02-117,8,9我的代码需要能够查询与键中特定子字符串匹配的所有值。例如,如果我有子字符串2011-07它应该返回值{1,2,3,4,5,6}.11的子串应该从1-9返回所有ID.任何人都可以推荐一种简洁的方法来实现这一目标吗?或者提供更好的数据结构来检索这些信息? 最佳答案 我会做一个扩展方法:publicstaticclassDictionaryExt{publicstaticIE

c# - 如何用异步调用的结果来补充字典?

假设我有这样的代码:publicasyncTaskDoSomethingReturnString(intn){...}int[]numbers=newint[]{1,2,3};假设我想创建一个包含调用DoSomethingReturnString的结果的字典对于每个类似于此的数字:Dictionarydictionary=numbers.ToDictionary(n=>n,n=>DoSomethingReturnString(n));那是行不通的,因为DoSomethingReturnString返回Task而不是string.智能感知建议我尝试将我的lambda表达式指定为异步,但这

c# - 在 C# 中测试对象是否为字典

有没有办法测试一个对象是否是一个字典?在一个方法中,我试图从列表框中的选定项目中获取值。在某些情况下,列表框可​​能绑定(bind)到字典,但这在编译时是未知的。我想做类似的事情:if(listBox.ItemsSourceisDictionary){KeyValuePairpair=(KeyValuePair)listBox.SelectedItem;objectvalue=pair.Value;}有没有办法在运行时使用反射动态地做到这一点?我知道可以对泛型类型使用反射并确定键/值参数,但我不确定在检索到这些值后是否有办法完成剩下的工作。 最佳答案

c# - SQL 命令结果到字典 C# .NET 2.0

我在.NET2.0中有一个简单的SQL查询(使用SqlCommand、SqlTransaction),它返回一个整数-字符串对表(ID、名称)。我想将这些数据放入像Dictionary这样的字典中.我可以将结果放入数据表中,但即使对其进行迭代,我也不确定如何进行输入和所有其他操作。我觉得这一定是一个普遍的问题,但我还没有找到任何好的解决方案。提前致谢。 最佳答案 您可以尝试与此类似的方法,根据您当前循环访问结果的方式进行调整:Dictionarydictionary=newDictionary();using(SqlConnecti

c# - 创建一个以数组为值的字典

我正在尝试使用字符串元素作为键并使用int[]元素作为值来初始化一个字典,如下所示:System.Collections.Generic.DictionarymyDictionary;myDictionary=newDictionary{{"length",{1,1}},{"width",{1,1}}};但是调试器一直说:“意外的符号‘{’”。你能告诉我上面的代码有什么问题吗?谢谢! 最佳答案 我不确定是否适用于C#,但以下示例适用于Java:代替{1,1}尝试newint[]{1,1}或new[]{1,1}